/*
 * Copyright (c) 2010-2011 NOO. All Rights Reserved.
 * [Id:UserService.java  2011-10-25 下午9:24 poplar.yfyang ]
 */
package org.mumu.pawn.cmps;

import org.mumu.pawn.fm.dm.LazyPawnDataModel;
import org.mumu.pawn.domain.User;

import java.io.Serializable;

/**
 * <p>
 * 用户服务组件.
 * </p>
 *
 * @author poplar.yfyang
 * @version 1.0 2011-10-25 下午9:24
 * @since JDK 1.5
 */
public interface UserCmp extends Serializable {
    /**
     * 保存或者更新用户信息
     *
     * @param arg_user 用户信息
     */
    void saveOrUpdateUser(User arg_user);

    /**
     * 创建用户数据模型，基础的查询过滤等都由此数据模型完成。
     *
     * @return 用户数据模型
     */
    LazyPawnDataModel createUserDataModal();

    /**
     * 根据用户ID取得用户信息。
     *
     * @param arg_id 用户ID
     * @return 用户信息
     */
    User getUser(long arg_id);

    /**
     * 根据用户名称取得用户信息，如果用户不存在，则返回null。
     *
     * @param arg_userName 用户名称
     * @return 用户信息，不存在的话则返回null
     */
    User findUser(String arg_userName);

    /**
     * 删除一个已经存在用户。
     * 逻辑删除，非物理删除
     * @param arg_user 删除用户
     */
    void delteUser(User arg_user);

    /**
     * 禁用用户。
     * @param arg_user 禁止一个用户
     */
    void disabledUser(User arg_user);
}
